var Dnd={obj:null,init:function(o,minX,maxX,minY,maxY){
o.onmousedown=Dnd.start;
o.minX=typeof minX!="undefined"?minX:null;
o.minY=typeof minY!="undefined"?minY:null;
o.maxX=typeof maxX!="undefined"?maxX:null;
o.maxY=typeof maxY!="undefined"?maxY:null;
o.onDragStart=new Function();
o.onDragEnd=new Function();
o.onDrag=new Function();
if(isNaN(parseInt(o.style.left))){
o.style.left="0px";
}
if(isNaN(parseInt(o.style.top))){
o.style.top="0px";
}
},start:function(e){
if(typeof e=="undefined"){
e=window.event;
}
var o=Dnd.obj=this;
var y=parseInt(o.style.top);
var x=parseInt(o.style.left);
o.onDragStart(x,y);
o.lastMouseX=e.clientX;
o.lastMouseY=e.clientY;
if(o.minX!=null){
o.minMouseX=e.clientX-x+o.minX;
}
if(o.maxX!=null){
o.maxMouseX=o.minMouseX+o.maxX-o.minX;
}
if(o.minY!=null){
o.minMouseY=e.clientY-y+o.minY;
}
if(o.maxY!=null){
o.maxMouseY=o.minMouseY+o.maxY-o.minY;
}
document.onmousemove=Dnd.drag;
document.onmouseup=Dnd.end;
return false;
},drag:function(e){
if(typeof e=="undefined"){
e=window.event;
}
var o=Dnd.obj;
var ey=e.clientY;
var ex=e.clientX;
var y=parseInt(o.style.top);
var x=parseInt(o.style.left);
if(o.minX!=null){
ex=Math.max(ex,o.minMouseX);
}
if(o.maxX!=null){
ex=Math.min(ex,o.maxMouseX);
}
if(o.minY!=null){
ey=Math.max(ey,o.minMouseY);
}
if(o.maxY!=null){
ey=Math.min(ey,o.maxMouseY);
}
var nx=x+((ex-o.lastMouseX));
var ny=y+((ey-o.lastMouseY));
o.style["left"]=nx+"px";
o.style["top"]=ny+"px";
o.lastMouseX=ex;
o.lastMouseY=ey;
o.onDrag(nx,ny);
return false;
},end:function(){
document.onmousemove=null;
document.onmouseup=null;
var o=Dnd.obj;
var y=parseInt(o.style.top);
var x=parseInt(o.style.left);
o.onDragEnd(x,y);
Dnd.obj=null;
}};
